using System.ComponentModel.DataAnnotations;

namespace B.S.ReportEvent.Domain.Entities;

/// <summary>
/// 工作流实例表
/// </summary>
public class WfInstances
{
    /// <summary>
    /// 主键
    /// </summary>
    [Key]
    public int InstanceId { get; set; }

    /// <summary>
    /// 表单分类编号
    /// </summary>
    public string FormTypeNo { get; set; } = null!;

    /// <summary>
    /// 表单分类名称
    /// </summary>
    public string FormTypeName { get; set; } = null!;

    /// <summary>
    /// 表单编号
    /// </summary>
    public string FormNo { get; set; } = null!;

    /// <summary>
    /// 表单名称
    /// </summary>
    public string FormName { get; set; } = null!;

    /// <summary>
    /// 表单内容
    /// </summary>
    public string FormContent { get; set; } = null!;

    /// <summary>
    /// 工作流状态
    /// </summary>
    public int FlowStatus { get; set; } 

    /// <summary>
    /// 工作流状态名称
    /// </summary>
    public string FlowStatusName { get; set; } = null!;

    /// <summary>
    /// 开始者编号
    /// </summary>
    public int StarterId { get; set; }

    /// <summary>
    /// 开始者名称
    /// </summary>
    public string StarterName { get; set; } = null!;

    /// <summary>
    /// 当前节点编号
    /// </summary>
    public string CurrentNodeNo { get; set; } = null!;

    /// <summary>
    /// 当前节点名称
    /// </summary>
    public string CurrentNodeName { get; set; } = null!;

    /// <summary>
    /// 当前操作者编号
    /// </summary>
    public int CurrentOperatorId { get; set; }

    /// <summary>
    /// 当前操作者姓名
    /// </summary>
    public string CurrentOperatorName { get; set; } = null!;

    /// <summary>
    /// 下一节点编号
    /// </summary>
    public string NextNodeNo { get; set; } = null!;

    /// <summary>
    /// 下一节点名称
    /// </summary>
    public string NextNodeName { get; set; } = null!;

    /// <summary>
    /// 下一操作者编号
    /// </summary>
    public int NextOperatorId { get; set; }

    /// <summary>
    /// 下一操作者姓名
    /// </summary>
    public string NextOperatorName { get; set; } = null!;

    /// <summary>
    /// 创建时间
    /// </summary>
    public DateTime CreatedTime { get; set; }

    /// <summary>
    /// 更新时间
    /// </summary>
    public DateTime UpdatedTime { get; set; }

    /// <summary>
    /// 删除时间
    /// </summary>
    public DateTime? DeletedTime { get; set; }

    /// <summary>
    /// 删除标记 (0: 正常 1: 删除)
    /// </summary>
    public bool IsDeleted { get; set; }

    /// <summary>
    /// 表单 ID
    /// </summary>
    public int FormId { get; set; }
}